package com.syni.mdd.sjb.common.datatreaure.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.syni.mdd.sjb.common.component.mybatis.dxshapp.entity.DxshAppUserChannel;
import com.syni.mdd.sjb.common.component.mybatis.dxshapp.entity.customBo.DxshAppUserChannelBo;
import com.syni.mdd.sjb.common.component.utils.common.utils.RpcResponseVo;
import com.syni.mdd.sjb.common.datatreaure.entity.bo.apiNews.MinAppNewsBo;
import com.syni.mdd.sjb.common.datatreaure.entity.vo.rp.index.DataRpVo;
import com.syni.mdd.sjb.common.datatreaure.entity.vo.rp.userChannel.AddAlipayInfoVo;
import com.syni.mdd.sjb.common.datatreaure.entity.vo.rq.BaseRqVo;
import com.syni.mdd.sjb.common.datatreaure.entity.vo.rq.databank.DataBankBusinessVo;
import com.syni.mdd.sjb.common.datatreaure.entity.vo.rq.userChannel.*;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 电享生活app用户渠道表 服务类
 * </p>
 *
 * @author cfx
 * @since 2020-04-21
 */
public interface DxshAppUserChannelService extends IService<DxshAppUserChannel> {


    //小程序
    int CHANNEL_MINAPP = 1;
    //觅东东
    int CHANNEL_MDD = 2;

    //觅东东认领后的状态
    int IS_FILL_CODE_4 = 4;

    Map<String, Object> getMyChannel(GetMyChannelVo getMyChannelVo);

    List<DxshAppUserChannelBo> getUserChannelGroupByType(Integer userId);

    Map<String,Object> searchBusinessToClaim(SearchBusinessToClaimVo searchBusinessToClaimVo);

    Map<String,Object> doClaimBusiness(ClaimBusinessVo claimBusinessVo);

    Map<String,Object> doClaimBusiness_v2(ClaimBusinessVo claimBusinessVo);

    Map<String, Object> doClaimBusiness_v3(ClaimBusinessVo claimBusinessVo);

    Map<String,Object> certificationBusiness(CertificationBusinessVo certificationBusinessVo);

    Map<String, Object> createAlipay(AddAlipayInfoVo addAlipayInfoVo);

    Map<String, Object> searchAlreadyBusiness(SearchAlreadyBusinessVo searchAlreadyBusinessVo);

    Map<String, Object> createBusiness(CreateBusinessVo createBusinessVo);

    Map<String, Object> getBusinessDataById(GetBusinessDataByIdVo getBusinessDataByIdVo);

    Map<String,Object> minNameCheck(MinAppNameVo minAppNameVo);

//    Map<String,Object> minSubmitInfo(MinExclusiveInfoVo minExclusiveInfoVo);

    Map<String, Object> minSubmitInfo_v2(MinExclusiveInfoVo_v2 minExclusiveInfoVo);

    Map<String, Object> minAppCollectionInfo(MinExclusiveInfoVo minExclusiveInfoVo);

    Map<String, Object> releaseMinApp(MinExclusiveInfoVo minExclusiveInfoVo);

    Map<String,Object> getMinAppInfo(MinAppInfoVo minAppInfoVo);

    Map<String,Object> editMinAppInfo(MinExclusiveInfoVo minExclusiveInfoVo);

    Map<String,Object> getMinAppList(BaseRqVo baseRqVo);

    Map<String, Object> updateBusinessData(UpdateBusinessDataVo updateBusinessDataVo);

    Map<String,Object> cardToBank(CardInfoVo cardInfoVo);

    Map<String,Object> getBankByCity(CityCodeVo cityCodeVo);

    Map<String, Object> getQuickAccessList(BaseRqVo baseRqVo);

    Map<String,Object> getCertificationBusiness(GetCertificationBusinessVo certificationBusinessVo);

    Map<String, Object> getCertificationBusiness_v2(GetCertificationBusinessVo getCertificationBusinessVo);

    Map<String, Object> switchQuickAccess(SwitchQuickAccessVo switchQuickAccessVo);

    Map<String, Object> getMddChannelList(BaseRqVo baseRqVo);

    /**
     * 获取首页快捷访问数据
     */
    List<DataRpVo.DxshAppQuickAccessVo>  getIndexQuickAccessData(Integer userId);

    Map<String, Object> refreshQuickAccess(RefreshQuickAccessVo refreshQuickAccessVo);

    Map<String, Object> getPayInfo(GetPayInfoVo getPayInfoVo);

    Map<String,Object> getAllBusiness(BusinessRqVo businessRqVo);

    Map<String,Object> getMyStore(Integer userId,Integer pageNum,Integer pageSize);

    Map<String,Object> getMyStore(Integer userId,Integer businessId);

    Map<Integer, List<DxshAppUserChannel>> getBusinssAllChannel(Integer userId);

    Map<String, Object> addChannel(Integer userId,Integer businessId,Integer channel);

    RpcResponseVo transferManager(Integer userId, Integer newManagerId, Integer businessId, Integer channel);

    RpcResponseVo administratorReleaseBusiness(Integer userId,Integer businessId,List<Integer> assistantIds);

    DxshAppUserChannel getByMinAppId(String storeId);

    List<DxshAppUserChannel> getDxshChannelByUserIdAndChannel(Integer userId, Integer channel);

    DxshAppUserChannel getDxshChannelByBusinessIdAndChannel(Integer businessId,Integer channel);

    int countUserHaveBusiness(Integer userId);

    Map<String, Object> getAppDemoList();

    Map<String, Object> getAppDemoList_v2(BaseRqVo baseRqVo);

    Map<String, Object> getAppDemoDetail(Integer userId,String demoId);

    Map<String, Object> getTargetBusiness(DataBankBusinessVo dataBankBusinessVo);

    Map<String,Object> getMinAppRevDataByStoreId(String storeId,String appId);

    Map<String, Object> getMyAllChannel(Integer userId,Integer pageNum,Integer pageSize);

    String getMinAppIndexUrl();

    Map<String, Object> mddCertification(CertificationBusinessVo certificationBusinessVo);

    Map<String, Object> addChannel_v2(Integer userId, Integer channel);


    Map<String, Object> getSubdividedIndustry(Integer userId);

    Map<String, Object> chooseSubdividedIndustry(GetMyChannelVo userId);

    Map<String, Object> readyOnIt(Integer channelId);

    Map<String, Object> chooseMinAppDemo(Integer channelId, String demoId);

    Map<String, Object> minAppCertification(CertificationBusinessVo certificationBusinessVo);

    Map<String, Object> readyOnItInfo(Integer userId,Integer channelId);

    Map<String, Object> releaseMinAppPrepare(Integer channelId);

    Map<String, Object> getMinAppInfo_v2(MinAppInfoVo minAppInfoVo);

    Map<String,Object> getAppCollectionInfo(MinExclusiveInfoVo minExclusiveInfoVo);

    Map<String, Object> reSubmit(CertificationBusinessVo certificationBusinessVo);

    Map<String, Object> minAppShare(Integer channelId);

    DxshAppUserChannel getByStoreId(String storeId);

    DxshAppUserChannel getByAppId(String appId);

    void postHandleMinAppNews(MinAppNewsBo minAppNewsBo, String storeId);

    void syncDxshappCompMe();
}

